// Serial.h: interface for the CSerial class.
//
//////////////////////////////////////////////////////////////////////
#ifndef _SERIAL_H
#define _SERIAL_H

#include <pthread.h>

typedef struct _serialConfig
{
    int baudrate;
    char databits; 
    char stopbits; 
    char parity;
}serialConfig;

class CSerial
{
private:
	//ͨѶ�̱߳�ʶ��ID
	pthread_t 	m_thread;
	// �������ݽ����߳�
	static int ReceiveThreadFunc( void* lparam );
public:
	CSerial();
	virtual ~CSerial();

	// �Ѵ򿪵Ĵ����ļ�������
	int m_fd;

	int  m_DatLen;
	// �������ݽ���Buffer
	char DatBuf[1024];

	// �˳����ݽ����̱߳�־
	int  m_ExitThreadFlag;

	// ����ָ���Ĵ��ڲ����򿪴��ڣ����������ڽ����߳�
	int  OpenPort( int PortNo, int baudrate, char databits, char stopbits, char parity  );
	// �رմ��ڲ��ͷ������Դ
	int  ClosePort( );
	// �����򴮿�д����
	int  WritePort( char* Buf, int len );
	// ���մ������ݴ�������
	virtual int PackagePro( char* Buf, int len );
};

#endif
